package com.iotimc.attendancesystem.manage.person;

import com.iotimc.attendancesystem.entity.PersonEntity;

import java.util.List;

/**
 * @author david
 * @date 2017/12/6
 */

public interface PersonContract {

    interface DeleteView{
        /**
         * 删除成功
         */
        void deleteSuccess();

    }

    interface InsertOrUpdateView{
        /**
         * @param message
         */
        void insertOrUpdateError(String message);

        /**
         *
         */
        void insertOrUpdateSuccess();
    }

    interface Presenter {

        void setInsertOrUpdateView(PersonContract.InsertOrUpdateView insertOrUpdateView);

        /**
         * 清除人员信息，包括人脸数据
         *
         * @param personEntity
         */
        void deletePerson(PersonEntity personEntity);
        /**
         * 清除人员信息，包括人脸数据
         *
         * @param entities
         */
        void deletePersons(List<PersonEntity> entities);

        /**
         * @param personCard 原卡号
         * @param newCard 新卡号
         * @return true 已存在
         */
        boolean checkCardRepeat(String personCard,String newCard);

        /**
         * @param  personCode 原编号
         * @param newCode 新编号
         * @return true 已存在
         */
        boolean checkCodeRepeat(String personCode,String newCode);
        /**
         * 新增或修改人员信息
         * @param personEntity update的原数据，新增传null即可
         * @param mHeadByte 图像数据，没有传null即可
         * @param admin 是否为管理员
         * @param code
         * @param name
         * @param position
         * @param card
         * @param sex
         */
        void insertOrUpdate(PersonEntity personEntity,byte[] mHeadByte,boolean admin,String code,String name,String position,String card, String sex);
    }
}
